//package org.jeecg.modules.deepseek.config;
//
//import org.springframework.ai.autoconfigure.vectorstore.redis.RedisVectorStoreAutoConfiguration;
//import org.springframework.ai.document.MetadataMode;
//import org.springframework.ai.embedding.EmbeddingModel;
//import org.springframework.ai.embedding.TokenCountBatchingStrategy;
//import org.springframework.ai.openai.OpenAiEmbeddingModel;
//import org.springframework.ai.openai.OpenAiEmbeddingOptions;
//import org.springframework.ai.openai.api.OpenAiApi;
//import org.springframework.ai.retry.RetryUtils;
//import org.springframework.ai.vectorstore.VectorStore;
//import org.springframework.ai.vectorstore.redis.RedisVectorStore;
//import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import redis.clients.jedis.JedisPooled;
//
//
//@Configuration
//@EnableAutoConfiguration(exclude = {RedisVectorStoreAutoConfiguration.class})
//public class VectorStoreConfig {
//
//    @Bean
//    public JedisPooled jedisPooled() {
//
//        return new JedisPooled("127.0.0.1", 6379);
//    }
//
//    @Bean
//    public EmbeddingModel embeddingModel() {
//
//        var openAiApi = new OpenAiApi("https://api.siliconflow.cn", "sk-nrvjihoykgbjabnelziszukgkcankraqcwtvohvpcuepuyyz");
//        //        return new OpenAiEmbeddingModel(, MetadataMode.EMBED, OpenAiEmbeddingOptions.builder().model("text-embedding-ada-002").build(), RetryUtils.DEFAULT_RETRY_TEMPLATE);
//        return new OpenAiEmbeddingModel(
//                openAiApi,
//                MetadataMode.EMBED,
//                OpenAiEmbeddingOptions.builder()
//                        .dimensions(1024)
//                        .encodingFormat("float")
//                        .model("BAAI/bge-large-zh-v1.5")
//                        .build(),
//                RetryUtils.DEFAULT_RETRY_TEMPLATE);
//    }
//
//    @Bean(name = "customVectorStore")
//    public VectorStore vectorStore(JedisPooled jedisPooled, EmbeddingModel embeddingModel) {
//        return RedisVectorStore.builder(jedisPooled, embeddingModel)
//                // 设置索引名称，可选项，默认值为 "spring-ai-index"
//                .indexName("custom-index")
//                // 设置向量存储前缀，可选项，默认值为 "embedding:"
//                .prefix("custom-prefix")
//                // 设置元数据字段（用于后续过滤），可选项
//                .metadataFields(
//                        RedisVectorStore.MetadataField.text("noteTitle"), // 文本类型字段，例如国籍
////                        RedisVectorStore.MetadataField.tag("country"),      // 标签类型字段，例如国家
//                        RedisVectorStore.MetadataField.numeric("noteDate"),     // 数值类型字段，例如年份
//                        RedisVectorStore.MetadataField.tag("noteType")
//                )
//                // 是否在构建时初始化 Redis 索引架构，可选项，默认值为 false
//                .initializeSchema(true)
//
//                // 设置批处理策略，可选项，默认使用 TokenCountBatchingStrategy（按 token 数量进行批处理）
//                .batchingStrategy(new TokenCountBatchingStrategy())
//
//                // 构建 RedisVectorStore 实例
//                .build();
//
//}
//}
//
